package com.styletransfer.model;

import java.util.Date;
import java.util.List;

/**
 * 图片专辑模型类
 * 
 * 这个类表示用户创建的图片专辑，包含多张原始图片
 */
public class Album {
    
    /**
     * 专辑ID
     */
    private Long id;
    
    /**
     * 用户ID
     */
    private Long userId;
    
    /**
     * 专辑标题
     */
    private String title;
    
    /**
     * 专辑描述
     */
    private String description;
    
    /**
     * 专辑封面图片URL
     */
    private String coverImage;
    
    /**
     * 专辑中的图片URL列表
     */
    private List<String> images;
    
    /**
     * 专辑中的图片数量
     */
    private Integer imageCount;
    
    /**
     * 点赞数量
     */
    private Integer likeCount;
    
    /**
     * 评论数量
     */
    private Integer commentCount;
    
    /**
     * 浏览次数
     */
    private Integer viewCount;
    
    /**
     * 创建时间
     */
    private Date createTime;
    
    /**
     * 更新时间
     */
    private Date updateTime;
    
    /**
     * 状态（1:正常, 0:删除）
     */
    private Integer status;
    
    /**
     * 是否公开（1:公开, 0:私有）
     */
    private Integer isPublic;
    
    /**
     * 用户信息（非数据库字段，用于前端展示）
     */
    private User user;
    
    /**
     * 当前用户是否点赞（非数据库字段，用于前端展示）
     */
    private Boolean isLiked;

    // Getters and Setters
    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getCoverImage() {
        return coverImage;
    }

    public void setCoverImage(String coverImage) {
        this.coverImage = coverImage;
    }

    public List<String> getImages() {
        return images;
    }

    public void setImages(List<String> images) {
        this.images = images;
    }

    public Integer getImageCount() {
        return imageCount;
    }

    public void setImageCount(Integer imageCount) {
        this.imageCount = imageCount;
    }

    public Integer getLikeCount() {
        return likeCount;
    }

    public void setLikeCount(Integer likeCount) {
        this.likeCount = likeCount;
    }

    public Integer getCommentCount() {
        return commentCount;
    }

    public void setCommentCount(Integer commentCount) {
        this.commentCount = commentCount;
    }

    public Integer getViewCount() {
        return viewCount;
    }

    public void setViewCount(Integer viewCount) {
        this.viewCount = viewCount;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getIsPublic() {
        return isPublic;
    }

    public void setIsPublic(Integer isPublic) {
        this.isPublic = isPublic;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public Boolean getIsLiked() {
        return isLiked;
    }

    public void setIsLiked(Boolean isLiked) {
        this.isLiked = isLiked;
    }
}
